////////////////////////////////////////////////
// MACHINE GENERATED, PLEASE DONOT MODIFY!    //
////////////////////////////////////////////////

#pragma once

#include <functional>
#include <memory>
#include <ctime>
#include <google/protobuf/message.h>

#include "../common/generated_proto_header.hh"
#include "../../plugin/base/rpc_define.hh"

#include "rpc_id.inl"

using SampleEchoFunction=std::function<void(const DummyAck&)>;
using SampleEcho1Function=std::function<void(const DummyAck&)>;
using Sample1EchoFunction=std::function<void(const DummyAck&)>;
using Sample1Echo1Function=std::function<void(const DummyAck&)>;

class ISample {
public:
	virtual void echo(const DummyReq&, DummyAck&)=0;
	virtual void echo1(const DummyReq&, DummyAck&)=0;
};
class SampleProxy {
public:
	virtual bool echo(const DummyReq&, SampleEchoFunction ackCB = nullptr, RPCTimeoutCB toCB = nullptr, std::time_t timeout = 2000) = 0;
	virtual bool echo1(const DummyReq&, SampleEcho1Function ackCB = nullptr, RPCTimeoutCB toCB = nullptr, std::time_t timeout = 2000) = 0;
};
class ISample1 {
public:
	virtual void echo(const DummyReq&, DummyAck&)=0;
	virtual void echo1(const DummyReq&, DummyAck&)=0;
};
class Sample1Proxy {
public:
	virtual bool echo(const DummyReq&, Sample1EchoFunction ackCB = nullptr, RPCTimeoutCB toCB = nullptr, std::time_t timeout = 2000) = 0;
	virtual bool echo1(const DummyReq&, Sample1Echo1Function ackCB = nullptr, RPCTimeoutCB toCB = nullptr, std::time_t timeout = 2000) = 0;
};
